8002EEA0  55                push ebp
8002EEA1  8BEC              mov ebp,esp
8002EEA3  83EC24            sub esp,byte +0x24
8002EEA6  8365F800          and dword [ebp-0x8],byte +0x0
8002EEAA  8065FF00          and byte [ebp-0x1],0x0
8002EEAE  53                push ebx
8002EEAF  56                push esi
8002EEB0  8B7508            mov esi,[ebp+0x8]
8002EEB3  8BC6              mov eax,esi
8002EEB5  57                push edi
8002EEB6  8D4801            lea ecx,[eax+0x1]
8002EEB9  8A10              mov dl,[eax]
8002EEBB  40                inc eax
8002EEBC  84D2              test dl,dl
8002EEBE  75F9              jnz 0x8002eeb9
8002EEC0  2BC1              sub eax,ecx
8002EEC2  8BD8              mov ebx,eax
8002EEC4  685865466E        push dword 0x6e466558
8002EEC9  53                push ebx
8002EECA  E8523FFEFF        call 0x80012e21
8002EECF  85C0              test eax,eax
8002EED1  A314B00380        mov [0x8003b014],eax
8002EED6  750A              jnz 0x8002eee2
8002EED8  BF9A0000C0        mov edi,0xc000009a
8002EEDD  E98F030000        jmp 0x8002f271
8002EEE2  8BF8              mov edi,eax
8002EEE4  8BCB              mov ecx,ebx
8002EEE6  8BC1              mov eax,ecx
8002EEE8  C1E902            shr ecx,0x2
8002EEEB  F3A5              rep movsd
8002EEED  8BC8              mov ecx,eax
8002EEEF  83E103            and ecx,byte +0x3
8002EEF2  8D45F8            lea eax,[ebp-0x8]
8002EEF5  F3A4              rep movsb
8002EEF7  50                push eax
8002EEF8  66891D10B00380    mov [0x8003b010],bx
8002EEFF  66891D12B00380    mov [0x8003b012],bx
8002EF06  E8BBFAFFFF        call 0x8002e9c6
8002EF0B  8BF8              mov edi,eax
8002EF0D  85FF              test edi,edi
8002EF0F  0F8C5C030000      jl near 0x8002f271
8002EF15  6858654968        push dword 0x68496558
8002EF1A  BB00100000        mov ebx,0x1000
8002EF1F  53                push ebx
8002EF20  E8FC3EFEFF        call 0x80012e21
8002EF25  8BF0              mov esi,eax
8002EF27  33C0              xor eax,eax
8002EF29  3BF0              cmp esi,eax
8002EF2B  8975F0            mov [ebp-0x10],esi
8002EF2E  750A              jnz 0x8002ef3a
8002EF30  BF9A0000C0        mov edi,0xc000009a
8002EF35  E92D030000        jmp 0x8002f267
8002EF3A  8D4DE4            lea ecx,[ebp-0x1c]
8002EF3D  51                push ecx
8002EF3E  53                push ebx
8002EF3F  56                push esi
8002EF40  8D4DDC            lea ecx,[ebp-0x24]
8002EF43  51                push ecx
8002EF44  50                push eax
8002EF45  50                push eax
8002EF46  50                push eax
8002EF47  FF75F8            push dword [ebp-0x8]
8002EF4A  8945E4            mov [ebp-0x1c],eax
8002EF4D  8945E8            mov [ebp-0x18],eax
8002EF50  E82285FEFF        call 0x80017477
8002EF55  8BF8              mov edi,eax
8002EF57  85FF              test edi,edi
8002EF59  0F8C08030000      jl near 0x8002f267
8002EF5F  B878010000        mov eax,0x178
8002EF64  3945E0            cmp [ebp-0x20],eax
8002EF67  0F82F5020000      jc near 0x8002f262
8002EF6D  813E58424548      cmp dword [esi],0x48454258
8002EF73  0F85E9020000      jnz near 0x8002f262
8002EF79  8B8E08010000      mov ecx,[esi+0x108]
8002EF7F  3BC8              cmp ecx,eax
8002EF81  0F86DB020000      jna near 0x8002f262
8002EF87  8D860C010000      lea eax,[esi+0x10c]
8002EF8D  3B08              cmp ecx,[eax]
8002EF8F  0F87CD020000      ja near 0x8002f262
8002EF95  B900000100        mov ecx,0x10000
8002EF9A  398E04010000      cmp [esi+0x104],ecx
8002EFA0  0F85BC020000      jnz near 0x8002f262
8002EFA6  6A04              push byte +0x4
8002EFA8  894DF4            mov [ebp-0xc],ecx
8002EFAB  8B00              mov eax,[eax]
8002EFAD  894508            mov [ebp+0x8],eax
8002EFB0  6800200000        push dword 0x2000
8002EFB5  8D4508            lea eax,[ebp+0x8]
8002EFB8  50                push eax
8002EFB9  6A00              push byte +0x0
8002EFBB  8D45F4            lea eax,[ebp-0xc]
8002EFBE  50                push eax
8002EFBF  E888FFFEFF        call 0x8001ef4c
8002EFC4  8BF8              mov edi,eax
8002EFC6  85FF              test edi,edi
8002EFC8  0F8C99020000      jl near 0x8002f267
8002EFCE  6A04              push byte +0x4
8002EFD0  C745F400000100    mov dword [ebp-0xc],0x10000
8002EFD7  8B8608010000      mov eax,[esi+0x108]
8002EFDD  894508            mov [ebp+0x8],eax
8002EFE0  53                push ebx
8002EFE1  8D4508            lea eax,[ebp+0x8]
8002EFE4  50                push eax
8002EFE5  6A00              push byte +0x0
8002EFE7  8D45F4            lea eax,[ebp-0xc]
8002EFEA  50                push eax
8002EFEB  C645FF01          mov byte [ebp-0x1],0x1
8002EFEF  E858FFFEFF        call 0x8001ef4c
8002EFF4  8BF8              mov edi,eax
8002EFF6  85FF              test edi,edi
8002EFF8  0F8C69020000      jl near 0x8002f267
8002EFFE  FF75F0            push dword [ebp-0x10]
8002F001  B900040000        mov ecx,0x400
8002F006  BF00000100        mov edi,0x10000
8002F00B  F3A5              rep movsd
8002F00D  E8C63FFEFF        call 0x80012fd8
8002F012  391D08010100      cmp [0x10108],ebx
8002F018  7620              jna 0x8002f03a
8002F01A  A108010100        mov eax,[0x10108]
8002F01F  53                push ebx
8002F020  2BC3              sub eax,ebx
8002F022  50                push eax
8002F023  6800100100        push dword 0x11000
8002F028  FF75F8            push dword [ebp-0x8]
8002F02B  E8CBF9FFFF        call 0x8002e9fb
8002F030  8BF8              mov edi,eax
8002F032  85FF              test edi,edi
8002F034  0F8C37020000      jl near 0x8002f271
8002F03A  A108010100        mov eax,[0x10108]
8002F03F  B900000100        mov ecx,0x10000
8002F044  03C1              add eax,ecx
8002F046  390D18010100      cmp [0x10118],ecx
8002F04C  0F8209020000      jc near 0x8002f25b
8002F052  8B1518010100      mov edx,[0x10118]
8002F058  81C2D0010000      add edx,0x1d0
8002F05E  3BD0              cmp edx,eax
8002F060  0F87F5010000      ja near 0x8002f25b
8002F066  390D20010100      cmp [0x10120],ecx
8002F06C  0F82E9010000      jc near 0x8002f25b
8002F072  8B0D1C010100      mov ecx,[0x1011c]
8002F078  6BC938            imul ecx,ecx,byte +0x38
8002F07B  030D20010100      add ecx,[0x10120]
8002F081  3BC8              cmp ecx,eax
8002F083  0F87D2010000      ja near 0x8002f25b
8002F089  8B3518010100      mov esi,[0x10118]
8002F08F  8B96A0000000      mov edx,[esi+0xa0]
8002F095  8975EC            mov [ebp-0x14],esi
8002F098  8955F0            mov [ebp-0x10],edx
8002F09B  8B869C000000      mov eax,[esi+0x9c]
8002F0A1  817E080000FEFF    cmp dword [esi+0x8],0xfffe0000
8002F0A8  7505              jnz 0x8002f0af
8002F0AA  0D00000080        or eax,0x80000000
8002F0AF  0DFFFFFF00        or eax,0xffffff
8002F0B4  89869C000000      mov [esi+0x9c],eax
8002F0BA  813ED8010000      cmp dword [esi],0x1d8
8002F0C0  7607              jna 0x8002f0c9
8002F0C2  83A6D8010000FE    and dword [esi+0x1d8],byte -0x2
8002F0C9  B800000080        mov eax,0x80000000
8002F0CE  8B0DB8B20380      mov ecx,[0x8003b2b8]
8002F0D4  85C8              test eax,ecx
8002F0D6  7405              jz 0x8002f0dd
8002F0D8  23D0              and edx,eax
8002F0DA  8955F0            mov [ebp-0x10],edx
8002F0DD  8B0D58010100      mov ecx,[0x10158]
8002F0E3  F7C100000080      test ecx,0x80000000
8002F0E9  7520              jnz 0x8002f10b
8002F0EB  81F1B6406D5B      xor ecx,0x5b6d40b6
8002F0F1  890D58010100      mov [0x10158],ecx
8002F0F7  8B0D28010100      mov ecx,[0x10128]
8002F0FD  81F1AB57FCA8      xor ecx,0xa8fc57ab
8002F103  890D28010100      mov [0x10128],ecx
8002F109  EB1E              jmp short 0x8002f129
8002F10B  81F152F1B1EF      xor ecx,0xefb1f152
8002F111  890D58010100      mov [0x10158],ecx
8002F117  8B0D28010100      mov ecx,[0x10128]
8002F11D  81F14B9D8594      xor ecx,0x94859d4b
8002F123  890D28010100      mov [0x10128],ecx
8002F129  803DDCA9038000    cmp byte [0x8003a9dc],0x0
8002F130  7511              jnz 0x8002f143
8002F132  FF3574010100      push dword [0x10174]
8002F138  FF3570010100      push dword [0x10170]
8002F13E  E813750200        call 0x80056656
8002F143  8B351C010100      mov esi,[0x1011c]
8002F149  8B1D20010100      mov ebx,[0x10120]
8002F14F  6BF638            imul esi,esi,byte +0x38
8002F152  03F3              add esi,ebx
8002F154  EB1D              jmp short 0x8002f173
8002F156  F60302            test byte [ebx],0x2
8002F159  7415              jz 0x8002f170
8002F15B  6A01              push byte +0x1
8002F15D  53                push ebx
8002F15E  FF75F8            push dword [ebp-0x8]
8002F161  E8CFF9FFFF        call 0x8002eb35
8002F166  8BF8              mov edi,eax
8002F168  85FF              test edi,edi
8002F16A  0F8C01010000      jl near 0x8002f271
8002F170  83C338            add ebx,byte +0x38
8002F173  3BDE              cmp ebx,esi
8002F175  72DF              jc 0x8002f156
8002F177  FF750C            push dword [ebp+0xc]
8002F17A  E85A5BFEFF        call 0x80014cd9
8002F17F  84C0              test al,al
8002F181  7410              jz 0x8002f193
8002F183  807D0C00          cmp byte [ebp+0xc],0x0
8002F187  750A              jnz 0x8002f193
8002F189  BF3A0000C0        mov edi,0xc000003a
8002F18E  E9DE000000        jmp 0x8002f271
8002F193  833D5801010000    cmp dword [0x10158],byte +0x0
8002F19A  741A              jz 0x8002f1b6
8002F19C  FF3558010100      push dword [0x10158]
8002F1A2  6800000180        push dword 0x80010000
8002F1A7  E819FCFFFF        call 0x8002edc5
8002F1AC  8BF8              mov edi,eax
8002F1AE  85FF              test edi,edi
8002F1B0  0F8CBB000000      jl near 0x8002f271
8002F1B6  8B351C010100      mov esi,[0x1011c]
8002F1BC  8B3D20010100      mov edi,[0x10120]
8002F1C2  6BF638            imul esi,esi,byte +0x38
8002F1C5  03F7              add esi,edi
8002F1C7  EB13              jmp short 0x8002f1dc
8002F1C9  8B07              mov eax,[edi]
8002F1CB  A802              test al,0x2
8002F1CD  740A              jz 0x8002f1d9
8002F1CF  A801              test al,0x1
8002F1D1  7506              jnz 0x8002f1d9
8002F1D3  57                push edi
8002F1D4  E8A4F8FFFF        call 0x8002ea7d
8002F1D9  83C738            add edi,byte +0x38
8002F1DC  3BFE              cmp edi,esi
8002F1DE  72E9              jc 0x8002f1c9
8002F1E0  E86EFCFFFF        call 0x8002ee53
8002F1E5  B900000080        mov ecx,0x80000000
8002F1EA  854DF0            test [ebp-0x10],ecx
8002F1ED  750B              jnz 0x8002f1fa
8002F1EF  33C0              xor eax,eax
8002F1F1  BFA0B20380        mov edi,0x8003b2a0
8002F1F6  AB                stosd
8002F1F7  AB                stosd
8002F1F8  AB                stosd
8002F1F9  AB                stosd
8002F1FA  A198B20380        mov eax,[0x8003b298]
8002F1FF  33FF              xor edi,edi
8002F201  33F6              xor esi,esi
8002F203  807D0C00          cmp byte [ebp+0xc],0x0
8002F207  7529              jnz 0x8002f232
8002F209  8B55EC            mov edx,[ebp-0x14]
8002F20C  858A9C000000      test [edx+0x9c],ecx
8002F212  751E              jnz 0x8002f232
8002F214  A804              test al,0x4
8002F216  751A              jnz 0x8002f232
8002F218  850DB8B20380      test [0x8003b2b8],ecx
8002F21E  7512              jnz 0x8002f232
8002F220  803DDCA9038000    cmp byte [0x8003a9dc],0x0
8002F227  7404              jz 0x8002f22d
8002F229  A808              test al,0x8
8002F22B  7444              jz 0x8002f271
8002F22D  83E0F7            and eax,byte -0x9
8002F230  EB13              jmp short 0x8002f245
8002F232  803DDCA9038000    cmp byte [0x8003a9dc],0x0
8002F239  7536              jnz 0x8002f271
8002F23B  A808              test al,0x8
8002F23D  7532              jnz 0x8002f271
8002F23F  33F6              xor esi,esi
8002F241  83C808            or eax,byte +0x8
8002F244  46                inc esi
8002F245  A398B20380        mov [0x8003b298],eax
8002F24A  56                push esi
8002F24B  57                push edi
8002F24C  6A19              push byte +0x19
8002F24E  6A20              push byte +0x20
8002F250  E8DE54FEFF        call 0x80014733
8002F255  85C0              test eax,eax
8002F257  7CF1              jl 0x8002f24a
8002F259  EB16              jmp short 0x8002f271
8002F25B  BF7B0000C0        mov edi,0xc000007b
8002F260  EB0F              jmp short 0x8002f271
8002F262  BF7B0000C0        mov edi,0xc000007b
8002F267  85F6              test esi,esi
8002F269  7406              jz 0x8002f271
8002F26B  56                push esi
8002F26C  E8673DFEFF        call 0x80012fd8
8002F271  837DF800          cmp dword [ebp-0x8],byte +0x0
8002F275  7408              jz 0x8002f27f
8002F277  FF75F8            push dword [ebp-0x8]
8002F27A  E8B714FFFF        call 0x80020736
8002F27F  85FF              test edi,edi
8002F281  7D2D              jnl 0x8002f2b0
8002F283  807DFF00          cmp byte [ebp-0x1],0x0
8002F287  741D              jz 0x8002f2a6
8002F289  83650800          and dword [ebp+0x8],byte +0x0
8002F28D  6800800000        push dword 0x8000
8002F292  8D4508            lea eax,[ebp+0x8]
8002F295  50                push eax
8002F296  8D45F4            lea eax,[ebp-0xc]
8002F299  50                push eax
8002F29A  C745F400000100    mov dword [ebp-0xc],0x10000
8002F2A1  E8DA00FFFF        call 0x8001f380
8002F2A6  6810B00380        push dword 0x8003b010
8002F2AB  E8F42EFFFF        call 0x800221a4
8002F2B0  8BC7              mov eax,edi
8002F2B2  5F                pop edi
8002F2B3  5E                pop esi
8002F2B4  5B                pop ebx
8002F2B5  C9                leave
8002F2B6  C20C00            ret 0xc
8002F2B9  0FBF7B00          movsx edi,word [ebx+0x0]
8002F2BD  00C0              add al,al
8002F2BF  85F6              test esi,esi
8002F2C1  7406              jz 0x8002f2c9
8002F2C3  56                push esi
8002F2C4  E80F3DFEFF        call 0x80012fd8
8002F2C9  837DF800          cmp dword [ebp-0x8],byte +0x0
8002F2CD  7408              jz 0x8002f2d7
8002F2CF  FF75F8            push dword [ebp-0x8]
8002F2D2  E85F14FFFF        call 0x80020736
8002F2D7  85FF              test edi,edi
8002F2D9  7D2D              jnl 0x8002f308
8002F2DB  807DFF00          cmp byte [ebp-0x1],0x0
8002F2DF  741D              jz 0x8002f2fe
8002F2E1  83650800          and dword [ebp+0x8],byte +0x0
8002F2E5  6800800000        push dword 0x8000
8002F2EA  8D4508            lea eax,[ebp+0x8]
8002F2ED  50                push eax
8002F2EE  8D45F4            lea eax,[ebp-0xc]
8002F2F1  50                push eax
8002F2F2  C745F400000100    mov dword [ebp-0xc],0x10000
8002F2F9  E88200FFFF        call 0x8001f380
8002F2FE  6810B00380        push dword 0x8003b010
8002F303  E89C2EFFFF        call 0x800221a4
8002F308  8BC7              mov eax,edi
8002F30A  5F                pop edi
8002F30B  5E                pop esi
8002F30C  5B                pop ebx
8002F30D  C9                leave
8002F30E  C20C00            ret 0xc
8002F311  6A                db 0x6A
